"""
队列是multiprocessing 模块提供的一个类
1.创建队列
2.存放值
3.取值
"""
import multiprocessing

# 1.创建队列（指定长度）
# multiprocessing.Queue(n) n 表示长度
queue = multiprocessing.Queue(5)  # 存放5个值
# 2.存放值
# queue.put(值) 相队列中放入值
queue.put(1)
queue.put('hello')
queue.put([1,2,3,4,5])
dic = {'a':1,'b':3,'c':4}
queue.put(dic)
queue.put([5,6,7,8])
# 长度为5，放入第6个数据后，队列就进行入了阻塞状态，默认会等待队列先取出值再放入新的值
# queue.put(2)
#put_nowait() 表示放入值，如果已满，不在等待，直接报错
# queue.put_nowait(2)

# 3.取值
value = queue.get()
print(value)  # 1
print("--"*20)

value = queue.get()
print(value)  # 2
print("--"*20)

value = queue.get()
print(value)  # 3

value = queue.get()
print("--"*20) # 4

value = queue.get()
print(value)  # 5
print("--"*20)


# ------------队列中没有值了------------
# 当队列中已经空了，再次get（）程序会进入阻塞状态，等待新的值，然后再取
# value = queue.get()
# print(value)  
# print("--"*20)


# get_nowait() 当队列已空的时候，不会再继续等待仿佛新的值，直接报错
# value = queue.get_nowait()
# print(value)
# print("---"*20)
